package com.mycompany.webapp.action;

import static java.util.Collections.sort;

import java.io.Serializable;
import java.util.Comparator;
import java.util.List;

import org.apache.commons.beanutils.BeanComparator;
import org.apache.commons.collections.comparators.ReverseComparator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import com.mycompany.model.ControlAcceso;
import com.mycompany.service.ControlAccesoManager;

/**
 * Clase con lista JSF
 * @author javachavez
 */
@Component("controlAccesoList")
@Scope("session")
public class ControlAccesoList implements Serializable {
    private ControlAccesoManager controlAccesoManager;
    private String sortColumn = "id";
    private boolean ascending = true;

    @Autowired
    public void setControlAccesoManager(ControlAccesoManager controlAccesoManager) {
        this.controlAccesoManager = controlAccesoManager;
    }

    public String getSortColumn() {
        return sortColumn;
    }

    public void setSortColumn(String sortColumn) {
        this.sortColumn = sortColumn;
    }

    public boolean isAscending() {
        return ascending;
    }

    public void setAscending(boolean ascending) {
        this.ascending = ascending;
    }
    public List<ControlAcceso> getControlAccesos() {
        List<ControlAcceso> controlAccesos = controlAccesoManager.readAll();

        Comparator comparator = new BeanComparator(sortColumn);
       
        if (!ascending) {
            comparator = new ReverseComparator(comparator);
        }
        
        sort(controlAccesos, comparator);

        return controlAccesos;
    }
}
